package com.gzx.plugin.tjzy.modular.company.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gzx.plugin.tjzy.core.entity.CustomVo;
import com.gzx.plugin.tjzy.modular.company.entity.bo.GzxCompanyAddOrEditBo;
import com.gzx.plugin.tjzy.modular.company.entity.bo.GzxCompanyIdBo;
import com.gzx.plugin.tjzy.modular.company.entity.bo.GzxCompanyQueryBo;
import com.gzx.plugin.tjzy.modular.company.entity.vo.GzxCompanyVo;

import java.util.List;

/**
 * 委托公司Service接口
 *
 * @author LionLi
 * @date 2024-09-10
 */
public interface GzxCompanyService {

    /**
     * 分页查询委托公司列表
     *
     * @param companyQueryBo 查询条件
     * @return 委托公司分页列表
     */
    Page<GzxCompanyVo> pageList(GzxCompanyQueryBo companyQueryBo);

    /**
     * 查询委托公司
     *
     * @param id 主键
     * @return 委托公司
     */
    GzxCompanyVo queryById(Long id);

    /**
     * 查询所有公司
     *
     * @param val 公司名称或者公司编码
     * @return
     */
    List<CustomVo> listAll(String val);

    /**
     * 新增委托公司
     *
     * @param companyAddOrEditBo 委托公司
     */
    void insert(GzxCompanyAddOrEditBo companyAddOrEditBo);

    /**
     * 修改委托公司
     *
     * @param companyAddOrEditBo 委托公司
     */
    void update(GzxCompanyAddOrEditBo companyAddOrEditBo);

    /**
     * 校验并批量删除委托公司信息
     *
     * @param companyIdBo 待删除的主键集合
     * @return 是否删除成功
     */
    void deleteWithValidByIds(GzxCompanyIdBo companyIdBo);
}
